package testlist;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;

public class Demo {



    public static void main(String[] args) {

    }




//    //杨辉三角
//    public static List<List<Integer>> generate(int numRows){
//        List<List<Integer>> ret = new ArrayList<>();
//        //第一行
//        ret.add(new ArrayList<>());
//        ret.get(0).add(1);
//
//        //下面一些行
//        for(int i =1;i<numRows;i++){
//            ret.add(new ArrayList<>());
//            //第i行第1个数据
//            ret.get(i).add(1);
//            //第i行中间的数据
//            List<Integer> pre = ret.get(i-1);
//            for(int j=1;j<i;j++){
//                ret.get(i).add(pre.get(j)+pre.get(j-1));
//            }
//            //第i行最后一个数据
//            ret.get(i).add(i,1);
//        }
//
//        return ret;
//    }


    public static void main5(String[] args) {


//        List<List<Integer>> list = generate(3);
//        System.out.println(list);





//        List<List<Integer>> ret = new ArrayList<>();
//        ret.add(new ArrayList<>());
//        ret.get(0).add(100);
//        System.out.println(ret);
//
//        List<List<Integer>> ret2 = new ArrayList<>();
//
//        System.out.println(ret2);

    }








    public static void main3(String[] args) {
        List<Integer> list = new ArrayList<>();

        //默认放到数组最后的位置
        list.add(1);
        list.add(2);
        list.add(3);
        list.add(4);



        //遍历ArrayList
        for(int i=0;i<list.size();i++){
            System.out.print(list.get(i)+" ");
        }
        System.out.println();

        //foreach循环
        for(Integer x : list){
            System.out.print(x+" ");
        }
        System.out.println();
        System.out.println("---------------------------");

        //迭代器
//        Iterator<Integer> it = list.iterator();
//        while (it.hasNext()) {
//            System.out.print(it.next()+" ");
//        }
//        System.out.println();



        //从后往前遍历
        ListIterator<Integer> it1 = list.listIterator(list.size());
        while (it1.hasPrevious()) {
            System.out.print(it1.previous()+" ");
        }
        System.out.println();





        //substr截取列表并没有把数据拷贝出来，只是引用
//        List<Integer> list1 = list.subList(1,3); //截取列表左闭右开
//        System.out.println(list1);
//        list1.set(0,100);
//        System.out.println(list);
//        System.out.println(list1);




//        System.out.println(list);
//        list.remove(2);
//        System.out.println(list);
//        list.remove(new Integer(3)); //删除指定数据,如果没有则什么都不干
//        list.clear();
//        System.out.println(list);

    }







    public static void main2(String[] args) {
        ArrayList<Integer> list1 = new ArrayList<>();
        List<Integer> list2 = new ArrayList<>();

        //默认放到数组最后的位置
        list2.add(1);
        list2.add(0,10);
        System.out.println(list2);


    }




    public static void main1(String[] args) {
        TestList testList = new TestList();
        testList.add(1);
        testList.add(2);
//        testList.add(1,10);
//        testList.add(0,100);
//        testList.add(-1,80);
        testList.display();
        testList.set(0,999);
        testList.display();
//        System.out.println(testList.get(1));
//        System.out.println(testList.get(10));

    }
}
